// 对axios二次封装
// 服务器接口请求

import axios from "axios";
// 引入进度条
import nprogress from "nprogress";
import 'nprogress/nprogress.css'
// 引入store
import store from "@/store";

// 1.利用axios对象的create方法创建一个axios实例
// 2.requests就是axios，只是稍微配置了一下
const request = axios.create({
    // 基础路径,发请求时，路径当中会出现以下路径
    // baseURL: 'http://127.0.0.1:3007/car',
    baseURL: 'http://62.234.193.89:3007/car',
    // 超时时间
    timeout: 5000
});
// 请求拦截器
request.interceptors.request.use((config) => {
    // 进度条开始
    nprogress.start()
    // 判断用户登录并携带token
    if (store.state.userAbout.token) {
        config.headers['Authorization'] = store.state.userAbout.token;
    }
    // config:配置对象，里面有一个header请求头很重要
    return config;
});
// 响应拦截器
request.interceptors.response.use(
    // 成功的回调：服务器响应数据返回以后，响应拦截器可以检测到，可以做一些事情
    (response) => {
        // 进度条结束
        nprogress.done()
        return response.data
},(error) => {
    // 响应失败的回调
    nprogress.done()
    return Promise.reject(new Error('fail'))
})

// 对外暴露
export default request